package com.yc.thread.basic;

/**方案一：继承Thread
 * @author zwei
 * @create 2024-07-14 9:19
 */
public class Test3_Thread {
    public static void main(String[] args) {
        System.out.println("主方法的开头");
        MyThread mt=new MyThread();
        mt.start();     //线程启动用  start()
        //简写成：
        //new MyThread.start()

        //内部类
        InnerThread it=new InnerThread();  //自动线程要用start()；-》jvm会自动的调用  run()
        it.start();

    }
    //因为要在main这个静态方法中调用 这个内部类  所以这个内部类声明时要加static
    //内部类写法   ：只有这个Test2_Thread这个类才会用到InnerThread
    static class InnerThread extends Thread{
        @Override
        public void run(){
            for (int j = 0; j <=100; j++) {
                System.out.println("内部类中i的值为："+j);
                try {
                    Thread.sleep(1000);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }
}

/**
 * 方案一： 外部类  写一个类继承自Thread  重写run()方法  在这个方法加入耗时的操作或者组赛操作
 * MyThread start()-->start0()---run()
 */
class MyThread extends Thread{
    //run()方法中放入要执行的
    @Override
    public void run(){
        for (int i = 0; i <=100; i++) {
            System.out.println("外部类中i的值为："+i);
            try {
                Thread.sleep(1000);
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
    }
}
//java继承--》单继承
